﻿using System;
namespace Xroad.Eu.Xsd.Identifiers {
    
    
    [System.SerializableAttribute()]
    public partial class XRoadClientIdentifierType {
        
        private global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @__objectType;
        
        private string @__xRoadInstance;
        
        private string @__memberClass;
        
        private string @__memberCode;
        
        private string @__subsystemCode;
        
        public XRoadClientIdentifierType() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public XRoadClientIdentifierType(global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @objectType, string @xRoadInstance, string @memberClass, string @memberCode, string @subsystemCode) {
            this.@__objectType = @objectType;
            this.@__xRoadInstance = @xRoadInstance;
            this.@__memberClass = @memberClass;
            this.@__memberCode = @memberCode;
            this.@__subsystemCode = @subsystemCode;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public XRoadClientIdentifierType(global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @objectType, string @xRoadInstance, string @memberClass, string @memberCode) {
            this.@__objectType = @objectType;
            this.@__xRoadInstance = @xRoadInstance;
            this.@__memberClass = @memberClass;
            this.@__memberCode = @memberCode;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected XRoadClientIdentifierType(XRoadClientIdentifierType @xRoadClientIdentifierType) {
            this.@__objectType = @xRoadClientIdentifierType.ObjectType;
            this.@__xRoadInstance = @xRoadClientIdentifierType.XRoadInstance;
            this.@__memberClass = @xRoadClientIdentifierType.MemberClass;
            this.@__memberCode = @xRoadClientIdentifierType.MemberCode;
            this.@__subsystemCode = @xRoadClientIdentifierType.SubsystemCode;
        }
        
        public virtual global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType ObjectType {
            get {
                return this.@__objectType;
            }
            set {
                this.@__objectType = value;
            }
        }
        
        public virtual string XRoadInstance {
            get {
                return this.@__xRoadInstance;
            }
            set {
                this.@__xRoadInstance = value;
            }
        }
        
        public virtual string MemberClass {
            get {
                return this.@__memberClass;
            }
            set {
                this.@__memberClass = value;
            }
        }
        
        public virtual string MemberCode {
            get {
                return this.@__memberCode;
            }
            set {
                this.@__memberCode = value;
            }
        }
        
        public virtual string SubsystemCode {
            get {
                return this.@__subsystemCode;
            }
            set {
                this.@__subsystemCode = value;
            }
        }
    }
}
